/*
 * Copyright (c) 2023-2299 深圳市阿毛科技有限公司 All rights reserved.
 *
 * https://www.lamyz.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.lam.mall.app.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.lam.common.components.dict.annotation.Dict;
import com.lam.common.components.dict.model.DictConvertible;

import lombok.Data;

//import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 订单下的每个店铺
 *
 */
@Data
public class OrderShopVo implements DictConvertible{

    /**
     * 店铺ID
     **/
    //@Schema(description = "店铺id" , required = true)
    private String shopId;

    /**
     * 店铺名称
     **/
    //@Schema(description = "店铺名称" , required = true)
    private String shopName;

    //@Schema(description = "实际总值" , required = true)
    private BigDecimal actualTotal;

    //@Schema(description = "商品总值" , required = true)
    private BigDecimal total;
    
    /** 支付金额 */
    private BigDecimal payAmt;
    
    /** 支付方式 */
    @Dict(dictCode = "pay_type")
    private Integer payType;

    //@Schema(description = "商品总数" , required = true)
    private Integer totalNum;

    //@Schema(description = "地址Vo" , required = true)
    private UserAddrVo userAddrVo;

    //@Schema(description = "产品信息" , required = true)
    private List<OrderItemVo> orderItemVos;

    //@Schema(description = "运费" , required = true)
    private BigDecimal transfee;

    //@Schema(description = "优惠总额" , required = true)
    private BigDecimal reduceAmount;

    //@Schema(description = "促销活动优惠金额" , required = true)
    private BigDecimal discountMoney;

    //@Schema(description = "优惠券优惠金额" , required = true)
    private BigDecimal couponMoney;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //@Schema(description = "订单创建时间" , required = true)
    private Date createTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    //@Schema(description = "付款时间" , required = true)
    private Date payTime;

    /**
     * 订单备注信息
     */
    //@Schema(description = "订单备注信息" , required = true)
    private String remarks;

    /**
     * 订单状态
     */
    //@Schema(description = "订单状态" , required = true)
    @Dict(dictCode = "order_status")
    private Integer status;
}
